package com.huawang.mdesign.model.service.util.reqif;

import com.huawang.mdesign.model.service.util.reqif.ref.AttributeDefinitionEnumerationRef;
import com.huawang.mdesign.model.service.util.reqif.ref.EnumValueRef;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import lombok.Getter;
import lombok.Setter;

/**
 * @author xdl
 * @since 2023-04-04
 */
@Getter
@Setter
@XStreamAlias(ReqIFConstants.ATTRIBUTE_VALUE_ENUMERATION)
public class AttributeValueEnumeration extends AttributeValue {

    /**
     * Reference to the enumeration values that are chosen from a set of specified values.
     */
    @XStreamAlias(ReqIFConstants.VALUES)
    private EnumValueRef valueRef;

    /**
     * Reference to the attribute definition that relates the value to its data type.
     */
    @XStreamOmitField
    private AttributeDefinitionEnumeration definition;

    @XStreamAlias(ReqIFConstants.DEFINITION)
    private AttributeDefinitionEnumerationRef definitionRef;

    /**
     * Back linkage of the owning attribute definition
     */
    @XStreamOmitField
    private AttributeDefinitionEnumeration owningDefinition;
}
